package org.wu.framework.authorization.platform.domain.model.sys.zone.user;

import org.wu.framework.web.response.Result;
import org.wu.framework.web.response.ResultFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.wu.framework.authorization.platform.domain.model.sys.zone.user.SysZoneUser;
import java.util.List;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
/**
 * describe 用户区域关联关系 
 *
 * @author Jia wei Wu
 * @date 2025/07/27 05:25 下午
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyDomainRepository 
 **/

public interface SysZoneUserRepository {


    /**
     * describe 新增用户区域关联关系
     *
     * @param sysZoneUser 新增用户区域关联关系     
     * @return {@link  Result<SysZoneUser>} 用户区域关联关系新增后领域对象     
     
     * @author Jia wei Wu
     * @date 2025/07/27 05:25 下午
     **/

    Result<SysZoneUser> story(SysZoneUser sysZoneUser);

    /**
     * describe 批量新增用户区域关联关系
     *
     * @param sysZoneUserList 批量新增用户区域关联关系     
     * @return {@link Result<List<SysZoneUser>>} 用户区域关联关系新增后领域对象集合     
     
     * @author Jia wei Wu
     * @date 2025/07/27 05:25 下午
     **/

    Result<List<SysZoneUser>> batchStory(List<SysZoneUser> sysZoneUserList);

    /**
     * describe 查询单个用户区域关联关系
     *
     * @param sysZoneUser 查询单个用户区域关联关系     
     * @return {@link Result<SysZoneUser>} 用户区域关联关系DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/07/27 05:25 下午
     **/

    Result<SysZoneUser> findOne(SysZoneUser sysZoneUser);

    /**
     * describe 查询多个用户区域关联关系
     *
     * @param sysZoneUser 查询多个用户区域关联关系     
     * @return {@link Result<List<SysZoneUser>>} 用户区域关联关系DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/07/27 05:25 下午
     **/

    Result<List<SysZoneUser>> findList(SysZoneUser sysZoneUser);

    /**
     * describe 分页查询多个用户区域关联关系
     *
     * @param size 当前页数
     * @param current 当前页
     * @param sysZoneUser 分页查询多个用户区域关联关系     
     * @return {@link Result<LazyPage<SysZoneUser>>} 分页用户区域关联关系领域对象     
     
     * @author Jia wei Wu
     * @date 2025/07/27 05:25 下午
     **/

    Result<LazyPage<SysZoneUser>> findPage(int size,int current,SysZoneUser sysZoneUser);

    /**
     * describe 删除用户区域关联关系
     *
     * @param sysZoneUser 删除用户区域关联关系     
     * @return {@link Result<SysZoneUser>} 用户区域关联关系     
     
     * @author Jia wei Wu
     * @date 2025/07/27 05:25 下午
     **/

    Result<SysZoneUser> remove(SysZoneUser sysZoneUser);

    /**
     * describe 是否存在用户区域关联关系
     *
     * @param sysZoneUser 是否存在用户区域关联关系     
     * @return {@link Result<Boolean>} 用户区域关联关系是否存在     
     
     * @author Jia wei Wu
     * @date 2025/07/27 05:25 下午
     **/

    Result<Boolean> exists(SysZoneUser sysZoneUser);

}